package com.carb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.carb.dto.MemberConsumptionDTO;
import com.carb.entity.Member;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 会员管理 Mapper 接口
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-01-18
 */
public interface MemberMapper extends BaseMapper<Member> {

    /**
     * 根据会员的用户id集合查询会员id集合
     * @param memberUserIdList 会员的用户id集合
     * @return 会员id集合
     */
    List<Long> getMemberIdsByUserIds(List<Long> memberUserIdList);

    /**
     * 查询会员消费排名前十的会员
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return 会员消费Top10的会员
     */
    List<MemberConsumptionDTO> getMemberTop10(LocalDateTime beginTime, LocalDateTime endTime);

    /**
     * 根据会员id查询会员姓名
     * @param memberId 会员id
     * @return 会员姓名
     */
    String getNameByMemberId(Long memberId);

    /**
     * 根据会员ids得到id-name的Map
     * @param memberIds 会员id集合
     * @return Map-List
     */
    List<Map<String, Object>> getMemberNamesByIds(List<Long> memberIds);
}
